The present invention relates generally to data objects in a processing system and more particularly to storing and managing of sets of objects.
Data objects are utilized extensively in processing systems that utilize databases. A distinction is made here between data objects that participate in an object-oriented environment and data objects that participate in a set-oriented environment. In the object-oriented programming paradigm, objects are defined by data values and methods that are encapsulated within an object. All of the metadata about the object is kept internally within the object itself. By contrast, in the set-oriented model all of the metadata is kept external to the object. This is needed because each set may impose different requirements of the objects contained in the set. This becomes important when objects belong to more than one set.
It is known that it is important to efficiently manage and store data objects that belong to one or more sets. In particular, it is important to store metadata for an object as required by each set. Also, it is important to enforce constraints on an object as required by each set.
There are conventional methods of creating sets of objects. For instance, the creation of a set of objects is easily seen in any computer file system that offers multi-level subdirectories. Each subdirectory has a collection of objects. Similarly, e-mail programs have nested folders that allow the user to xe2x80x9cfilexe2x80x9d e-mail correspondence into sets. Examples of this are Microsoft Outlook, Eudora, and Lotus Notes.
There are examples of Object Metadata, commonly known as xe2x80x9cfile attributesxe2x80x9d. Probably the most famous are DOS""s xe2x80x9cRHSAxe2x80x9d bits. An enhancement came with the OS/2 operating system""s use of Extended Attributes, which allowed user-defined attributes. However, we are not aware of any enhancements that kept Object-within-Set metadata. Presently conventional systems do not monitor a subdirectory to detect changes and perform processing based on those changes. The present invention addresses such a need.
A system and method for storing and managing sets of objects is disclosed. The method and system comprises providing a plurality of set nodes based upon a defined set of data objects; and associating a plurality of constraint nodes with the plurality of set nodes. The method and system includes providing a plurality of object nodes based upon the objects; and obtaining object metadata from the plurality of object nodes. The method and system further includes associating at least one of the plurality of object nodes with at least one of the plurality of set nodes based upon a criteria and detecting that at least one of the plurality of set nodes has is been modified and delivering a notification to at least one constraint node of a plurality of constraint nodes. Each of the plurality of constraint nodes provides constraints on at least one set node.
Accordingly, a method and system in accordance with the present invention unifies the storing and managing of sets in order to simplify overall system behavior. The system and method uses an attributed, directed graph model to store object metadata, object-within-set metadata, and set constraints. By using this model, no special cases exist when an object belongs to just one set or hundreds of sets. The operations required to maintain the graph model are the same in every case. The operations required to maintain the metadata and constraints are also the same in every case. The entire model is therefore a unified and simplified system.